public class maxSubarraySum {
    public static void main(String[] args) {
        int[] array = {1, -2, 3, 5, -1};

        System.out.println("array数组的最大子数组和为: " + maxSubarraySum(array));
    }

    public static int maxSubarraySum(int[] nums) {
        int maxNum1 = nums[0];
        int maxNum2 = nums[0];

        for (int i = 1; i < nums.length; i++) {
            maxNum2 = Math.max(nums[i], maxNum2 + nums[i]);
            maxNum1 = Math.max(maxNum1, maxNum2);
        }

        return maxNum1;
    }
}
